export const getInputs = () => [
	[[1, 3], [2]],
	[
		[1, 2],
		[3, 4],
	],
];

/**
 * **[4. 寻找两个正序数组的中位数](https://leetcode.cn/problems/median-of-two-sorted-arrays/)**
 *
 * 给定两个大小分别为 `m` 和 `n` 的正序（从小到大）数组 `nums1` 和 `nums2`。请你找出并返回这两个正序数组的 **中位数** 。
 *
 * 算法的时间复杂度应该为 `O(log (m+n))` 。
 *
 * @param nums1
 * @param nums2
 * @returns
 */
export default function findMedianSortedArrays(nums1: number[], nums2: number[]): number {
	// 将两个数组合并成一个有序数组
	const merged: number[] = [];
	let i = 0,
		j = 0;
	while (i < nums1.length && j < nums2.length)
		nums1[i] < nums2[j] ? merged.push(nums1[i++]) : merged.push(nums2[j++]);
	while (i < nums1.length) merged.push(nums1[i++]);
	while (j < nums2.length) merged.push(nums2[j++]);

	// 计算合并后数组的长度以及中位数所在位置
	const len = merged.length;
	const mid = Math.floor((len - 1) / 2);

	// 如果数组长度为奇数，中位数就是中间那个数；如果长度为偶数，中位数是中间两个数的平均数
	return len % 2 ? merged[mid] : (merged[mid] + merged[mid + 1]) / 2;
}
